package com.hightrast.service.api.entity;

import com.hightrast.service.api.baseEntity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 商品变体表
 * </p>
 *
 * @author hx
 * @since 2025-01-22
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="RastProductVariants对象", description="商品变体表")
public class RastProductVariants extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "所属商品id")
    private Long productId;

    @ApiModelProperty(value = "变体标题")
    private String title;

    @ApiModelProperty(value = "变体价格")
    private BigDecimal price;

    @ApiModelProperty(value = "变体位置")
    private Integer position;

    @ApiModelProperty(value = "库存策略")
    private String inventoryPolicy;

    @ApiModelProperty(value = "比对价格")
    private BigDecimal compareAtPrice;

    @ApiModelProperty(value = "选项1")
    private String option1;

    @ApiModelProperty(value = "选项2")
    private String option2;

    @ApiModelProperty(value = "选项3")
    private String option3;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createdAt;

    @ApiModelProperty(value = "更新时间")
    private LocalDateTime updatedAt;

    @ApiModelProperty(value = "是否课税")
    private Integer taxable;

    @ApiModelProperty(value = "条形码")
    private String barcode;

    @ApiModelProperty(value = "履行服务")
    private String fulfillmentService;

    @ApiModelProperty(value = "重量（克）")
    private Integer grams;

    @ApiModelProperty(value = "库存管理")
    private String inventoryManagement;

    @ApiModelProperty(value = "是否需要运输")
    private Integer requiresShipping;

    @ApiModelProperty(value = "库存单位")
    private String sku;

    @ApiModelProperty(value = "重量")
    private BigDecimal weight;

    @ApiModelProperty(value = "重量单位")
    private String weightUnit;

    @ApiModelProperty(value = "库存项目id")
    private Long inventoryItemId;

    @ApiModelProperty(value = "库存数量")
    private Integer inventoryQuantity;

    @ApiModelProperty(value = "旧库存数量")
    private Integer oldInventoryQuantity;

    @ApiModelProperty(value = "GraphQL API id")
    private String adminGraphqlApiId;

    @ApiModelProperty(value = "图片id")
    private Long imageId;

    @ApiModelProperty(value = "商品佣金率")
    private BigDecimal commissonRate;

    @ApiModelProperty(value = "商品佣金率调整时间")
    private LocalDateTime commissonRateDate;

    @ApiModelProperty(value = "商品成本")
    private BigDecimal sampleCost;


}
